-Daniel Bass Zlepšení výkonu aplikací prostřednictvím používání agentů umělé inteligence se stává velmi běžnou praxí - ať už kvůli průmyslovým hype nebo skutečným užitečným případům použití. Tito agenti AI však často vyžadují přístup k vysoce citlivým datům, což představuje významná bezpečnostní rizika.Bez standardizovaných řešení pro kontrolu přístupu vývojové týmy často budují bezpečnostní opatření od začátku – což vede k případům, kdy a několik agentů AI, které jsou ohroženy prostřednictvím a . Asistenti AI odhalují citlivé informace pacientů Sofistikované rychlé injekční útoky Ochrana agentů umělé inteligence v tomto kontextu se stává stejně důležitou jako schopnosti samotných agentů umělé inteligence - ne-li více. Abychom tento problém řešili, jsme již delší dobu pracujeme na strukturovaném přístupu k bezpečnosti, který vám dnes chci představit: Povolení.cz a . The Four-Perimeter Framework Čtyřperimetrický rámec Tato metoda poskytuje komplexní strategii pro ochranu agentů AI prostřednictvím implementace , zajištění souladu a zmírnění potenciálních vektorů útoku.Než se dostanu do řešení, pojďme mluvit více o problémovém prostoru. Fine grain přístupová kontrola Problém: bezpečnostní rizika AI v citlivých doménách Tradiční bezpečnostní opatření aplikací a mechanismy kontroly přístupu chybí, pokud jde o manipulaci s agenty umělé inteligence. Na rozdíl od tradičních aplikací, kde jsou vstupy mapovány na předvídatelné výstupy a přístupové vzory jsou dobře definovány, AI generuje jedinečné odpovědi pro každou dotazu. Řízení přístupu založené na roli (Role-Based Access Control – RBAC) Způsob, jakým systémy AI přistupují k datům, také neodpovídá bezpečnostním standardům. Aby mohli poskytovat přesné a užitečné odpovědi, potřebují agenti AI široký přístup k různým zdrojům dat a databázím znalostí. Klasický RBAC se pro tuto potřebu ukázal jako příliš rigidní - nemůžete jednoduše přiřadit statická oprávnění, když se požadavky na data mění na základě kontextu. Jedná se o přístup, který umožňuje dynamické přístupové rozhodnutí. Atributy založené Dalším problémem jsou nové vektory útoků, které systémy AI zavádějí.Konvenční bezpečnostní opatření nebyla navržena tak, aby řešila útoky rychlé injekce, pokusy o extrakci modelů nebo útoky na otravu dat. Tyto cílové zranitelnosti jsou jedinečné pro systémy AI, které vyžadují zcela nové metody ochrany. Řešení přichází ve formě komplexního bezpečnostního rámce postaveného kolem čtyř základních obvodů - Řešení: čtyřperimetrický rámec Protože se aplikace AI liší od standardního softwaru tím, jak zpracovávají vstupy, získávají data, provádějí akce a vytvářejí výstupy, zavádějí také jedinečná bezpečnostní rizika. Tyto je navržena tak, aby prosazovala identitní povědomí, Zavádí bezpečnostní hranice, které určují, jaké modely AI mají přístup k datům, jaké operace mohou provádět a jak jsou jejich odpovědi validovány. Four-Perimeter Framework autorizace v celém životním cyklu AI Rámec se skládá ze čtyř částí: se se se se se Prompt filtrování – zajištění, že pouze validované, bezpečné vstupy dosáhnou modelů AI. RAG Data Protection – ovládání přístupu AI k externím zdrojům znalostí. Secure External Access – definování oprávnění AI agentů při interakci s externími nástroji. Response Enforcement – aplikace kontrol shody a filtrování výstupů generovaných AI. Aplikováním v těchto oblastech, agenti AI zůstávají Bez ztráty flexibility a funkčnosti. fine-grained access control (FGA) secure, auditable, and compliant Kde se FGA nachází? Jak již bylo zmíněno dříve, tradiční metody kontroly přístupu, jako je RBAC, se nedokáží vypořádat s dynamickým, kontextově závislým chováním umělé inteligence. se Modely AI zpracovávají nestrukturované vstupy, čímž je obtížné aplikovat tradiční bezpečnostní pravidla. ABAC to řeší extrahováním strukturovaných atributů z AI poptávek a jejich použitím v přístupových rozhodnutích založených na zásadách. se se ReBAC pro RAG Data Protection Retrieval-Augmented Generation (RAG) umožňuje modelům umělé inteligence čerpat informace z vektorových databází. ReBAC poskytuje přirozený způsob, jak v tomto nastavení prosazovat bezpečnost definováním vztahů mezi uživateli, zdroji dat a agenty umělé inteligence. Namísto přidělování statických oprávnění, ReBAC dynamicky uděluje nebo odmítá přístup na základě toho, jak se datové objekty vztahují k sobě navzájem – umožňující oprávnění pro vyhledávání v kontextu. Kombinací ABAC a ReBAC získají aplikace AI flexibilní mechanismy řízení přístupu založené na zásadách, které se přizpůsobují různým pracovním postupům AI, aniž by vyžadovaly ruční zásah. Jak vypadá implementace krok za krokem? Pojďme procházet praktickou implementací, abychom viděli Tento příklad zajišťuje agentovi AI Levantování Integrace na každém kroku Four-Perimeter Framework in action validating prompts, enforcing data protection, restricting external access, and moderating responses AI Access Control Povolení.cz Povolení.cz 1. Implement Prompt Filtering První bezpečnostní obvod se zaměřuje na validování a sanitizaci vstupů umělé inteligence předtím, než dosáhnou modelu.Můžeme prosazovat strukturované zpracování vstupů a prosazovat přístupové politiky na výzvy předtím, než dosáhnou modelu umělé inteligence: se se se se Autorizační kontroly jsou začleněny do rychlého ověřovacího potrubí, což zabraňuje neoprávněným datům ovlivňovat výstupy AI. Role, atributy a kontrola přístupu založená na vztazích jsou vynucovány, což zajišťuje, že pouze schválené parametry přecházejí na AI. Jakékoli porušení zásad jsou zaznamenávány a blokovány v reálném čase, čímž se zachovává auditovatelná sled rozhodnutí o přístupu. Zde jsou tři metody filtrování poptávek - od nejjednodušších po nejpokročilejší: se se se se Validace tokenů - Efektivní metoda pro jednoduché kontroly, jako je délka poptávky nebo obecné povolení běžících vstupů v systému. Vzorová shoda – v této metodě kontrola oprávnění zkoumá vzory v poptávkovém textu. Kontrola, například, zda vzor odpovídá SQL dotazu nebo kódu příkladu. Klasifikace AI - nejpokročilejší metoda v tomto seznamu, klasifikace AI používá AI k analýze poptávky pomocí specializované systémové poptávky, klasifikace do strukturovaného vstupu, který může být přesně analyzován v kontrole oprávnění. Prompt Filtering with PydanticAI Chcete-li nejlépe demonstrovat implementaci efektivního filtrování poptávek, zde je příklad použití nástrojů PydanticAI pro filtrování uživatelských vstupů do agentů AI. PydanticAI je agentový rámec, který využívá známé knihovny Python Pydantic a její statické možnosti psaní a přeměňuje jej na strukturovaný rámec AI, který se zabývá nestrukturovanými daty. Následující úložiště GitHub obsahuje plnou implementaci rámce pro PydanticAI: github.com / povolení / povolení @financial_agent.tool async def validate_financial_query( ctx: RunContext[PermitDeps], query: FinancialQuery, ) -> bool: """Key checks: - User has explicitly opted in to AI financial advice - Consent is properly recorded and verified - Classifies if the prompt is requesting advice Args: ctx: Context containing Permit client and user ID query: The financial query to validate Returns: bool: True if user has consented to AI advice, False otherwise """ try: # Classify if the prompt is requesting advice is_seeking_advice = classify_prompt_for_advice(query.question) permitted = await ctx.deps.permit.check( # The user object with their attributes { "key": ctx.deps.user_id, }, # The action being performed "receive", # The resource being accessed { "type": "financial_advice", "attributes": {"is_ai_generated": is_seeking_advice}, }, ) if not permitted: if is_seeking_advice: return "User has not opted in to receive AI-generated financial advice" else: return "User does not have permission to access this information" return True except PermitApiError as e: raise SecurityError(f"Permission check failed: {str(e)}") 2. Enforce Data Protection – Následně zajistíme zajištění, aby modely AI měly přístup pouze Toho lze dosáhnout jemným filtrováním dat agentů AI jménem uživatele v rámci pracovního postupu AI: retrieval-augmented generation (RAG) authorized knowledge sources se se se se Tato politika využívá pokročilé modely filtrování dat, jako je kontrola přístupu založená na vztahu, aby umožnila pokročilé filtrování dotazů do motoru politik. The vector and graph sources connected to the AI agents have metadata that can help the engine manipulate the unstructured query, filtering it to include only allowed data. Pokaždé, když agent získá data z databáze znalostí RAG, filtruje výsledky podle oprávnění uživatele. Když aplikace agentů provádí filtraci RAG, používá jednu z následujících metod: se se se FilterObjects – V této metodě aplikace grafu shromažďuje veškerá relevantní data z RAG a potom ji filtrová na uživatelská oprávnění. GetUserPermissions - V této metodě agent poskytuje RAG nestrukturovaný dotaz. RAG pak zavolá funkci GetUserPermissions a připojí dotaz filtru k nestrukturovanému dotazům RAG. RAG Data Protection with Langchain Langchain, známý AI aplikační rámec, je známý (také) svými retrieverovými komponenty, které poskytují skvělou podporu v přizpůsobených retrieverech, které lze sestavit s jakýmkoliv typem zdroje dat, což usnadňuje implementaci zabezpečeného RAG. , můžete zabalit obvyklý RAG s Zde je příklad PermitSelfQueryRetriever, který dostane uživatele, akce a typ zdrojů RAG filtrovat výsledky pro LLM: SelfQueryRetriever GetUserPermissions # 1. Build a small in-memory vector store embeddings = OpenAIEmbeddings() vectorstore = FAISS.from_documents(docs, embedding=embeddings) # 2. Initialize the PermitSelfQueryRetriever retriever = PermitSelfQueryRetriever( api_key=os.getenv("PERMIT_API_KEY", ""), pdp_url=os.getenv("PERMIT_PDP_URL"), user=USER, resource_type=RESOURCE_TYPE, action=ACTION, llm=embeddings, vectorstore=vectorstore, enable_limit=False, ) Následující úložiště obsahuje plnou implementaci rámce pro Langchain: https://github.com/povolení/langchain-povolení 3. Secure External Access – Agenty umělé inteligence často interagují s externími API, službami a nástroji pro automatizaci. Bez řádné kontroly přístupu riskují, že budou provádět neoprávněné akce. se se se se Použití modelů, jako je MCP, který definuje model server-klient, ve kterém agenti AI interagují s externími službami, je skvělým krokem k umožnění zabezpečení pro externí přístup AI (např. databáze, API, platební systémy). Infrastruktura akce umělé inteligence může použít službu, jako je Permit.io, k provádění kontrol autorizace na úrovni akce, ověřování toho, kdo podává žádost a jaké akce chtějí provést. Vývojáři jsou schopni přiřadit identity strojů agentům umělé inteligence a omezit jejich schopnosti pouze na předem schválené funkce. Zatímco GPT a rozhraní přirozeného jazyka nejsou nové, umožnění jim provádět akce jménem uživatelů je poměrně novou výzvou, se kterou se mnozí inženýři potýkají. se se se se Bezpečnost přímého přístupu - nejjednodušší úroveň. Uživatel požádá agenta AI o provedení operace, jako je HTTP hovor. Agent AI ví, zda je operace povolena, s přihlédnutím k aktuálnímu kontextu a uživateli. Komunikace mezi agentem a agentem – na této další úrovni vyžadujeme kaskádový tok identit a oprávnění, které umožňují agentům provádět akce na základě principu nejmenšího privilegia. Průtok požadavků na přístup - nejvíce vzrušující úroveň externího přístupu je, když agent AI chápe potřebu požádat o přístup přímo od lidského uživatele, když chce provést operaci. MCP, Human-in-the-Loop, and External Access Model Context Protocol je nový protokol zavedený společností Anthropic, který řeší problém umožnění agentům AI provádět proaktivní akce a slouží jako největší facilitátor pro zajištění externího přístupu. V následujícím příkladu ukazujeme server MCP, který ví, jak spravovat toky žádostí o přístup tím, že přivádí lidi do kruhu a používá API Permit.io k žádosti o oprávnění. Celý příklad kódu pro server požadavků na přístup MCP naleznete zde: https://github.com/permitio/permit-mcp @mcp.tool() async def request_access(username: str, resource: str, resource_name: str) -> dict: """ Initiate access request call to a specific resource in the system Args: username: The username of the person requesting access resource: The resource type the user is request access for resource_name: The name of the restaurant to request access for """ login = await permit.elements.login_as({ "userId": slugify(username), "tenant": "default"}) print(login) url = f"https://api.permit.io/v2/facts/{PROJECT_ID}/{ENV_ID}/access_requests/{ELEMENTS_CONFIG_ID}/user/{slugify(username)}/tenant/default" payload = { "access_request_details": { "tenant": "default", "resource": resource, "resource_instance": resource_name['id'], "role": "viewer", }, "reason": f"User {username} requests role 'viewer' for {resource_name}" } headers = { "authorization": "Bearer YOUR_API_SECRET_KEY", "Content-Type": "application/json", } async with httpx.AsyncClient() as client: await client.post(url, json=payload, headers=headers) return "Your request has been sent. Please check back later." 4. Validate AI Responses – Konečný obvod zavádí moderování obsahu a dodržování na odpovědi generované umělou inteligencí.To lze provést vytvořením pracovního postupu, který používá filtrování založené na zásadách před dodáním výstupů umělé inteligence: se se se se Do aplikace agenta může být přidána kontrola oprávnění, která umožňuje prosazování zásad v každém kroku řetězce předtím, než uživatel skutečně obdrží odpověď. Kombinované pracovní postupy validace dat a autorizace zajišťují, že pouze validovaná a povolená data mohou pokračovat. Odpověď, která se vrací uživatelům, může být upravována na základě předdefinovaných omezení, což umožňuje maskování dat nebo upozornění uživatele na omezení použití. Response Filtering with Langflow V následujícím příkladu používáme Langflow, vizuální editor aplikací AI bez kódu, pro vytvoření kontroly oprávnění, která je umístěna před jakoukoli odpovědí na chatu uživatele. Obsahuje všechny komponenty kontroly přístupu potřebné pro zabezpečené aplikace Langflow. Tento repozitář Závěr Systémy umělé inteligence se rychle integrují do aplikací napříč průmyslovými odvětvími, ale jejich bezpečnostní rámce zůstávají ve srovnání s tradičním softwarem nedostatečně rozvinuté.Bez řádné kontroly přístupu s vědomím identity mohou agenti umělé inteligence vystavit citlivým datům, provádět neoprávněné operace a generovat reakce, které nespadají do souladu s pokyny. Rámec čtyř obvodů nabízí strukturovaný způsob, jak zabezpečit pracovní postupy v oblasti umělé inteligence v každé fázi – od validace poptávek a ochrany dat RAG až po řízení vnějších akcí řízených umělou inteligencí a prosazování souladu s reakcemi.Využíváním autorizace s jemným zrnem (FGA) s ABAC a ReBAC mohou vývojáři zajistit, aby agenti umělé inteligence zůstali funkční a bezpeční a dynamicky se přizpůsobovali bezpečnostním scénářům v reálném světě. Spíše než budovat přístupovou kontrolu od začátku, integrace AI Access Control společnosti Permit.io s PydanticAI, LangChain, MCP a LangFlow umožňují týmům integrovat zabezpečení přímo do svých aplikací umělé inteligence – bez narušení vývojových pracovních postupů. a . Zkuste to sami zde To znamená, že toto pole je stále relativně nové a osvědčené postupy pro zabezpečení agentů umělé inteligence se stále vyvíjejí. rámec čtyř obvodů je experimentálním přístupem a přestože poskytuje silný základ, uznávám, že nasazení v reálném světě vždy vyžadují další zdokonalování a přizpůsobení. Rád bych slyšel vaši zpětnou vazbu, myšlenky a nápady na to, jak tento rámec zlepšit, aby byl ještě lepší pro systémy AI připravené k výrobě - komentujte zde, nebo mě narazíte v našem a . Slack komunita